package com.hyt.it.ogt.ykcj.service.zs;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.ykcj.domain.vo.ZsTemplateVo;
import com.hyt.it.ogt.ykcj.domain.zs.ZsTemplate;
import com.hyt.it.ogt.ykcj.domain.zs.dto.LevelDTO;
import com.hyt.it.ogt.ykcj.domain.zs.dto.SpecialityDTO;

import java.util.List;
import java.util.Set;

/**
 * 证书模板信息接口
 *
 * @author admin
 * @date 2021-06-18
 */
public interface IZsTemplateService extends IService<ZsTemplate> {

	/**
	 * 专业前戳
	 */
	String SPECIALITY_TYPE_PREFIX = "zs_subject_";

	/**
	 * 等级前戳
	 */
	String LEVEL_TYPE_PREFIX = "zs_level_";
	
	/**
	 * 分页查询模板列表
	 * @param templateName 模板名称
	 * @param officeId 机构id
	 * @return
	 */
	<E extends IPage<ZsTemplateVo>> E getTemplateInfoByPage(E page, String templateName, String officeId, Set<String> deptIds);
	
	
	/***
	 * 
	 */
	List<ZsTemplateVo> getTemplateListBySize(String officeId, Integer querySize);

    /**
     * 通过模板查询绑定的所有专业
     *
     * @param templateId
     * @return
     */
    List<SpecialityDTO> listSpecialitiesByTemplateCode(String templateCode);

    /**
     * 通过模板查询绑定的所有专业
     *
     * @param templateId
     * @return
     */
    List<SpecialityDTO> listSpecialities(String templateId);

    /**
     * 通过专业value查询对应的等级
     *
     * @param specialityValue
     * @return
     */
    List<LevelDTO> listLevels(String specialityValue);
}
